<?xml version="1.0" encoding="iso-8859-1" ?>
<!-- $Id$ -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Deployment And Configuration Engine (DAnCE) Release Notes</title>
    </head>

  <body>
    <h1>Deployment And Configuration Engine (DAnCE) Release Notes</h1>

    <p><b>D</b>eployment <b>An</b>d <b>C</b>onfiguration <b>E</b>ngine
    <b>(DAnCE)</b> is an implementation of the run-time infrastructure as
    defined by the final adopted <a
    href="http://www.omg.org/cgi-bin/doc?ptc/2003-07-08">OMG Deployment &amp;
    Configuration (D&amp;C) specification (ptc/2003-07-08)</a>, which deals with the
    configuration and deployment of component-based applications. Currently
    DAnCE only supports the deployment &amp; configuration of CORBA
    Component Model (CCM)-based applications, though we are interested in
    generalizing it for other component models in future work. DAnCE uses
    XML descriptors to drive the deployment it performs. One way to
    generate these descriptors is using the <b>Co</b>mponent
    <b>S</b>ynthesis using <b>M</b>odel-<b>I</b>ntegrated <b>C</b>omputing
    (<a href="http://www.dre.vanderbilt.edu/cosmic">CoSMIC</a>) tool-suite.
    DAnCE currently uses <b>C</b>omponent <b>I</b>ntegrated <b>A</b>CE
    <b>O</b>RB (<a href="http://www.dre.vanderbilt.edu/CIAO">CIAO</a>) as
    the underlying CCM implementation in the current release, though again
    we are interested in generalizing it for other CCM implementations in
    future work.
    </p>

    <h3>D&amp;C XML Schema Handling</h3>

    <p> The XML handlers shipped with DAnCE are capable of handling almost
    all elements that are defined in the D&amp;C schema. In this context,
    handling refers to reading the XML tags and converting them to the
    equivalent in-memory IDL-based data structures defined by the
    specifications. DAnCE supports the following types of descriptors
    specified in the D&amp;C specification:</p>
    <ul>
      <li>
        <p>
          <b>CORBA Component Descriptor(.ccd)</b> &ndash;
          Contains information about component interfaces including
          component ports.
        </p>
      </li>
      <li>
        <p>
          <b>Component Implementation Descriptor(.cid)</b>
          &ndash; Contains information about component implementations
          which might be either monolithic or assembly based. In the case
          of assembly based implementations, this descriptor also captures
          the dependencies and the connections among components
        </p>
      </li>
      <li>
        <p>
          <b>Implementation Artifact Descriptor(.iad)</b>
          &ndash; Contains information about implementation artifacts
          in-cluding dependencies between such artifacts
        </p>
      </li>
      <li>
        <p>
          <b>Component Package Descriptor(.cpd)</b> &ndash;
          Contains information about grouping of multiple imple-mentations
          of the same component interface into component packages
        </p>
      </li>
      <li>
        <p>
          <b>Package Configuration Descriptor(.pcd)</b>
          &ndash; Contains information about specific configurations of
          such component packages
        </p>
      </li>
      <li>
        <p>
          <b>Component Domain Descriptor(.cdd)</b> &ndash;
          Contains information about the target environment in which the
          component-based application will be deployed
        </p>
      </li>
      <li>
        <p>
          <b>TopLevel Package Descriptor(.tpd)</b> &ndash; Contains
          information identifying the top-level element in a component
          package descriptor which might include information about multiple
          elements
        </p>
      </li>

      <li>
        <p>
          <b>Component Deployment Plan(.cdp)</b> &ndash; Contains
          information that actually drives the deployment including
          information about individual components that represent the
          leaf-nodes in case of a hierarchical assembly, connections
          between components, and assignment of components to nodes etc.
        </p>
      </li>
    </ul>
    <p> For all the above elements, DAnCE supports proxying of the elements
    as defined by XMI, i.e, DAnCE supports both parsing of the elements
    inline and reference through <b><code>href</code></b> attribute. Some
    D&amp;C schema elements are however not handled, including:</p>
    <ul>
      <li>
        <p>
          <b>Deployment:Any</b> &ndash; This is a complex
          element that is composed of many sub-elements. Currently, DAnCE
          only parses a subset of the sub-elements of
          <b><code>Deployment:Any</code></b>. Specifically, DAnCE supports all the
          basic data types defined as part of <b><code>Deployment:Any</code></b>,
          and doesn't understand any complex types.
        </p>
      </li>
      <li>
        <p>
          <b>xmi:Extension</b> &ndash; This element allows the
          augmention of the standard D&amp;C schema with user-defined
          elements. Currently DAnCE doesn't support user-defined extensions
          to the schema.
        </p>
      </li>
      <li>
        <p>
          <b>Deployment:Requirement</b> &ndash; This element is
          allows the description of requirements of component-based
          applications. Since handling this description requires interaction
          with the <b><code>TargetManager</code></b> interface (which is not yet
          supported), support for <b><code>Deployment:Requirement</code></b> is not
          present.
        </p>
      </li>
      <li>
        <p>
          <b>Deployment:ComponentPropertyDescriptioncode></b> &ndash;
          This element is used to specify default values for attributes of
          component. DAnCE doesn't support setting the values for attributes
          of components using this tag.
        </p>
      </li>
      <li>
        <p>
          <b>Deployment:ComponentExternalPortEndpoint,
          Deployment:ExternalReferenceEndpoint</b> &ndash; These
          elements are used to specify connections between ports of
          components in one assembly with ports of components in a different
          assembly, or connections between component ports and external
          connection endpoints. These features are needed to support
          assemblies of components. DAnCE doesn't support yet hierarchical
          assemblies, i.e., creation of assemblies which can themselves
          contain sub-assemblies.
        </p>
      </li>
      <li>
        <p>
          <b>Deployment:PlanPropertyMapping</b> &ndash; This
          element is used to delegate property mapping between a component's
          external properties to properties of subcomponents that actually
          implement the behavior of the larger component. Since DAnCE doesn't
          support hierarchical assemblies, this tag is not yet supported.
        </p>
      </li>
    </ul>
    <p> We plan to support these features in future versions of DAnCE.
    </p>
    <hr />
    <h3> D&amp;C Management Interfaces</h3>

    <p> The D&amp;C specification defines a set of standard CORBA
    interfaces that are used to perform the deployment of component-based
    applications. These interfaces depend on the in-memory IDL data
    structures that are built by DAnCE's XML handlers. Below we outline the
    list of interfaces defined by the specification and the level of
    support for each interface in DAnCE:</p>
    <ul>
      <li>
        <p>
          <b>RepositoryManager</b> &ndash; Only the
          <b><code>installPackage()</code></b> and <b><code>findPackageByName()</code></b>
          operations of this interface are implemented.
        </p>
      </li>
      <li>
        <p>
          <b>TargetManager</b> &ndash; This interface has not
          been implemented at all. Implementation of this interface is
          planned for the future.
        </p>
      </li>
      <li>
        <p>
          <b>ExecutionManager</b> &ndash; All operations defined
          in this interface are implemented.
        </p>
      </li>
      <li>
        <p>
          <b>DomainApplicationManager, DomainApplication</b>
          &ndash; All operations except <b><code>getApplications()</code></b>
          operation of DomainApplicationManager are implemented.
        </p>
      </li>
      <li>
        <p>
        <b>NodeManager </b>&ndash; All operations except <strong><code>joinDomain()</code></strong> and <strong><code>leaveDomain()</code></strong> operations of NodeManager are implemented. </p>
      </li>
      <li>
        <p><b> NodeApplicationManager, NodeApplication</b> &ndash; All operations defined in these interfaces are
              implemented. </p>
      </li>
    </ul>
    <p>
      We plan to finish implementing the unsupported features in future versions of DAnCE.
    </p>
    <p>
      <a href="http://validator.w3.org/check?uri=referer">
        <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!"
             height="31" width="88" />
      </a>
    </p>
    <address>
      Last modified $Date$ by $Author$
    </address>
  </body>
</html>
